{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd1b1618d90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[6], [8], [10], [14], [18]]\n",
      "[[   1.    6.   36.]\n",
      " [   1.    8.   64.]\n",
      " [   1.   10.  100.]\n",
      " [   1.   14.  196.]\n",
      " [   1.   18.  324.]]\n",
      "[[6], [8], [11], [16]]\n",
      "[[   1.    6.   36.]\n",
      " [   1.    8.   64.]\n",
      " [   1.   11.  121.]\n",
      " [   1.   16.  256.]]\n",
      "('Simple linear regression r-squared', 0.80972679770766498)\n",
      "('Quadratic regression r-squared', 0.86754436563450898)\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "\n",
    "X_train = [[6], [8], [10], [14], [18]]\n",
    "y_train = [[7], [9], [13], [17.5], [18]]\n",
    "X_test = [[6], [8], [11], [16]]\n",
    "y_test = [[8], [12], [15], [18]]\n",
    "regressor = LinearRegression()\n",
    "regressor.fit(X_train, y_train)\n",
    "xx = np.linspace(0, 26, 100)\n",
    "yy = regressor.predict(xx.reshape(xx.shape[0], 1))\n",
    "plt.plot(xx, yy)\n",
    "quadratic_featurizer = PolynomialFeatures(degree=2)\n",
    "X_train_quadratic = quadratic_featurizer.fit_transform(X_train)\n",
    "X_test_quadratic = quadratic_featurizer.transform(X_test)\n",
    "regressor_quadratic = LinearRegression()\n",
    "regressor_quadratic.fit(X_train_quadratic, y_train)\n",
    "xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1))\n",
    "plt.plot(xx, regressor_quadratic.predict(xx_quadratic), c='r', linestyle='--')\n",
    "plt.title('Pizza price regressed on diameter')\n",
    "plt.xlabel('Diameter in inches')\n",
    "plt.ylabel('Price in dollars')\n",
    "plt.axis([0, 25, 0, 25])\n",
    "plt.grid(True)\n",
    "plt.scatter(X_train, y_train)\n",
    "plt.show()\n",
    "print(X_train)\n",
    "print(X_train_quadratic)\n",
    "print(X_test)\n",
    "print(X_test_quadratic)\n",
    "print('Simple linear regression r-squared', regressor.score(X_test, y_test))\n",
    "print('Quadratic regression r-squared', regressor_quadratic.score(X_test_quadratic, y_test))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
